/**
* 递归函数,用于找出数组中指定范围的最大元素值
* @param {Array} arr - 要查找最大元素的数组
* @param {number} start - 查找范围的起始索引
* @param {number} end - 查找范围的结束索引
* @returns {number} - 该范围内的最大元素值
*/
function findMax(arr, start, end) {
// 如果起始索引和结束索引相同,说明该范围内只有一个元素
if (start === end) {
// 直接返回该元素
return arr[start];
}
// 计算中间位置的索引
const mid = Math.floor((start + end) / 2);
// 递归调用 findMax 函数,找出前半部分的最大元素值
const max1 = findMax(arr, start, mid);
// 递归调用 findMax 函数,找出后半部分的最大元素值
const max2 = findMax(arr, mid + 1, end);
// 返回前半部分和后半部分最大元素值中的较大值
return Math.max(max1, max2);
}
// 示例数组
const a = [3, 7, 1, 9, 5, 2, 8];
// 获取数组的长度
const n = a.length;
// 调用 findMax 函数,找出整个数组的最大元素值
const maxElement = findMax(a, 0, n - 1);
// 输出数组中的最大元素值
console.log(`数组中的最大元素值是: ${maxElement}`);